(0) Obligation:

Clauses:

star(X1, []).
star(.(X, U), .(X, W)) :- ','(app(U, V, W), star(.(X, U), W)).
app([], L, L).
app(.(X, L), M, .(X, N)) :- app(L, M, N).

Query: star(g,g)

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph ICLP10.

(2) Obligation:

Clauses:

appA([], T38, T38).
appA(.(T45, T46), X73, .(T45, T47)) :- appA(T46, X73, T47).
starB(T4, []).
starB(.(T10, []), .(T10, T17)) :- starB(.(T10, []), T17).
starB(.(T10, .(T26, T27)), .(T10, .(T26, T28))) :- appA(T27, X40, T28).
starB(.(T10, .(T26, T27)), .(T10, .(T26, T28))) :- ','(appA(T27, T31, T28), starB(.(T10, .(T26, T27)), .(T26, T28))).

Query: starB(g,g)

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:
starB_in: (b,b)
appA_in: (b,f,b)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

starB_in_gg(T4, []) → starB_out_gg(T4, [])
starB_in_gg(.(T10, []), .(T10, T17)) → U2_gg(T10, T17, starB_in_gg(.(T10, []), T17))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_gg(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
appA_in_gag([], T38, T38) → appA_out_gag([], T38, T38)
appA_in_gag(.(T45, T46), X73, .(T45, T47)) → U1_gag(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
U1_gag(T45, T46, X73, T47, appA_out_gag(T46, X73, T47)) → appA_out_gag(.(T45, T46), X73, .(T45, T47))
U3_gg(T10, T26, T27, T28, appA_out_gag(T27, X40, T28)) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_gg(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_gg(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_gg(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U5_gg(T10, T26, T27, T28, starB_out_gg(.(T10, .(T26, T27)), .(T26, T28))) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
U2_gg(T10, T17, starB_out_gg(.(T10, []), T17)) → starB_out_gg(.(T10, []), .(T10, T17))

The argument filtering Pi contains the following mapping:
starB_in_gg(x1, x2)  =  starB_in_gg(x1, x2)
[]  =  []
starB_out_gg(x1, x2)  =  starB_out_gg
.(x1, x2)  =  .(x1, x2)
U2_gg(x1, x2, x3)  =  U2_gg(x3)
U3_gg(x1, x2, x3, x4, x5)  =  U3_gg(x5)
appA_in_gag(x1, x2, x3)  =  appA_in_gag(x1, x3)
appA_out_gag(x1, x2, x3)  =  appA_out_gag(x2)
U1_gag(x1, x2, x3, x4, x5)  =  U1_gag(x5)
U4_gg(x1, x2, x3, x4, x5)  =  U4_gg(x1, x2, x3, x4, x5)
U5_gg(x1, x2, x3, x4, x5)  =  U5_gg(x5)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

starB_in_gg(T4, []) → starB_out_gg(T4, [])
starB_in_gg(.(T10, []), .(T10, T17)) → U2_gg(T10, T17, starB_in_gg(.(T10, []), T17))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_gg(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
appA_in_gag([], T38, T38) → appA_out_gag([], T38, T38)
appA_in_gag(.(T45, T46), X73, .(T45, T47)) → U1_gag(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
U1_gag(T45, T46, X73, T47, appA_out_gag(T46, X73, T47)) → appA_out_gag(.(T45, T46), X73, .(T45, T47))
U3_gg(T10, T26, T27, T28, appA_out_gag(T27, X40, T28)) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_gg(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_gg(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_gg(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U5_gg(T10, T26, T27, T28, starB_out_gg(.(T10, .(T26, T27)), .(T26, T28))) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
U2_gg(T10, T17, starB_out_gg(.(T10, []), T17)) → starB_out_gg(.(T10, []), .(T10, T17))

The argument filtering Pi contains the following mapping:
starB_in_gg(x1, x2)  =  starB_in_gg(x1, x2)
[]  =  []
starB_out_gg(x1, x2)  =  starB_out_gg
.(x1, x2)  =  .(x1, x2)
U2_gg(x1, x2, x3)  =  U2_gg(x3)
U3_gg(x1, x2, x3, x4, x5)  =  U3_gg(x5)
appA_in_gag(x1, x2, x3)  =  appA_in_gag(x1, x3)
appA_out_gag(x1, x2, x3)  =  appA_out_gag(x2)
U1_gag(x1, x2, x3, x4, x5)  =  U1_gag(x5)
U4_gg(x1, x2, x3, x4, x5)  =  U4_gg(x1, x2, x3, x4, x5)
U5_gg(x1, x2, x3, x4, x5)  =  U5_gg(x5)

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(T10, []), .(T10, T17)) → U2_GG(T10, T17, starB_in_gg(.(T10, []), T17))
STARB_IN_GG(.(T10, []), .(T10, T17)) → STARB_IN_GG(.(T10, []), T17)
STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_GG(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → APPA_IN_GAG(T27, X40, T28)
APPA_IN_GAG(.(T45, T46), X73, .(T45, T47)) → U1_GAG(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
APPA_IN_GAG(.(T45, T46), X73, .(T45, T47)) → APPA_IN_GAG(T46, X73, T47)
STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_GG(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_GG(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_GG(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U4_GG(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → STARB_IN_GG(.(T10, .(T26, T27)), .(T26, T28))

The TRS R consists of the following rules:

starB_in_gg(T4, []) → starB_out_gg(T4, [])
starB_in_gg(.(T10, []), .(T10, T17)) → U2_gg(T10, T17, starB_in_gg(.(T10, []), T17))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_gg(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
appA_in_gag([], T38, T38) → appA_out_gag([], T38, T38)
appA_in_gag(.(T45, T46), X73, .(T45, T47)) → U1_gag(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
U1_gag(T45, T46, X73, T47, appA_out_gag(T46, X73, T47)) → appA_out_gag(.(T45, T46), X73, .(T45, T47))
U3_gg(T10, T26, T27, T28, appA_out_gag(T27, X40, T28)) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_gg(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_gg(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_gg(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U5_gg(T10, T26, T27, T28, starB_out_gg(.(T10, .(T26, T27)), .(T26, T28))) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
U2_gg(T10, T17, starB_out_gg(.(T10, []), T17)) → starB_out_gg(.(T10, []), .(T10, T17))

The argument filtering Pi contains the following mapping:
starB_in_gg(x1, x2)  =  starB_in_gg(x1, x2)
[]  =  []
starB_out_gg(x1, x2)  =  starB_out_gg
.(x1, x2)  =  .(x1, x2)
U2_gg(x1, x2, x3)  =  U2_gg(x3)
U3_gg(x1, x2, x3, x4, x5)  =  U3_gg(x5)
appA_in_gag(x1, x2, x3)  =  appA_in_gag(x1, x3)
appA_out_gag(x1, x2, x3)  =  appA_out_gag(x2)
U1_gag(x1, x2, x3, x4, x5)  =  U1_gag(x5)
U4_gg(x1, x2, x3, x4, x5)  =  U4_gg(x1, x2, x3, x4, x5)
U5_gg(x1, x2, x3, x4, x5)  =  U5_gg(x5)
STARB_IN_GG(x1, x2)  =  STARB_IN_GG(x1, x2)
U2_GG(x1, x2, x3)  =  U2_GG(x3)
U3_GG(x1, x2, x3, x4, x5)  =  U3_GG(x5)
APPA_IN_GAG(x1, x2, x3)  =  APPA_IN_GAG(x1, x3)
U1_GAG(x1, x2, x3, x4, x5)  =  U1_GAG(x5)
U4_GG(x1, x2, x3, x4, x5)  =  U4_GG(x1, x2, x3, x4, x5)
U5_GG(x1, x2, x3, x4, x5)  =  U5_GG(x5)

We have to consider all (P,R,Pi)-chains

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(T10, []), .(T10, T17)) → U2_GG(T10, T17, starB_in_gg(.(T10, []), T17))
STARB_IN_GG(.(T10, []), .(T10, T17)) → STARB_IN_GG(.(T10, []), T17)
STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_GG(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → APPA_IN_GAG(T27, X40, T28)
APPA_IN_GAG(.(T45, T46), X73, .(T45, T47)) → U1_GAG(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
APPA_IN_GAG(.(T45, T46), X73, .(T45, T47)) → APPA_IN_GAG(T46, X73, T47)
STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_GG(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_GG(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_GG(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U4_GG(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → STARB_IN_GG(.(T10, .(T26, T27)), .(T26, T28))

The TRS R consists of the following rules:

starB_in_gg(T4, []) → starB_out_gg(T4, [])
starB_in_gg(.(T10, []), .(T10, T17)) → U2_gg(T10, T17, starB_in_gg(.(T10, []), T17))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_gg(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
appA_in_gag([], T38, T38) → appA_out_gag([], T38, T38)
appA_in_gag(.(T45, T46), X73, .(T45, T47)) → U1_gag(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
U1_gag(T45, T46, X73, T47, appA_out_gag(T46, X73, T47)) → appA_out_gag(.(T45, T46), X73, .(T45, T47))
U3_gg(T10, T26, T27, T28, appA_out_gag(T27, X40, T28)) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_gg(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_gg(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_gg(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U5_gg(T10, T26, T27, T28, starB_out_gg(.(T10, .(T26, T27)), .(T26, T28))) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
U2_gg(T10, T17, starB_out_gg(.(T10, []), T17)) → starB_out_gg(.(T10, []), .(T10, T17))

The argument filtering Pi contains the following mapping:
starB_in_gg(x1, x2)  =  starB_in_gg(x1, x2)
[]  =  []
starB_out_gg(x1, x2)  =  starB_out_gg
.(x1, x2)  =  .(x1, x2)
U2_gg(x1, x2, x3)  =  U2_gg(x3)
U3_gg(x1, x2, x3, x4, x5)  =  U3_gg(x5)
appA_in_gag(x1, x2, x3)  =  appA_in_gag(x1, x3)
appA_out_gag(x1, x2, x3)  =  appA_out_gag(x2)
U1_gag(x1, x2, x3, x4, x5)  =  U1_gag(x5)
U4_gg(x1, x2, x3, x4, x5)  =  U4_gg(x1, x2, x3, x4, x5)
U5_gg(x1, x2, x3, x4, x5)  =  U5_gg(x5)
STARB_IN_GG(x1, x2)  =  STARB_IN_GG(x1, x2)
U2_GG(x1, x2, x3)  =  U2_GG(x3)
U3_GG(x1, x2, x3, x4, x5)  =  U3_GG(x5)
APPA_IN_GAG(x1, x2, x3)  =  APPA_IN_GAG(x1, x3)
U1_GAG(x1, x2, x3, x4, x5)  =  U1_GAG(x5)
U4_GG(x1, x2, x3, x4, x5)  =  U4_GG(x1, x2, x3, x4, x5)
U5_GG(x1, x2, x3, x4, x5)  =  U5_GG(x5)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 5 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPA_IN_GAG(.(T45, T46), X73, .(T45, T47)) → APPA_IN_GAG(T46, X73, T47)

The TRS R consists of the following rules:

starB_in_gg(T4, []) → starB_out_gg(T4, [])
starB_in_gg(.(T10, []), .(T10, T17)) → U2_gg(T10, T17, starB_in_gg(.(T10, []), T17))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_gg(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
appA_in_gag([], T38, T38) → appA_out_gag([], T38, T38)
appA_in_gag(.(T45, T46), X73, .(T45, T47)) → U1_gag(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
U1_gag(T45, T46, X73, T47, appA_out_gag(T46, X73, T47)) → appA_out_gag(.(T45, T46), X73, .(T45, T47))
U3_gg(T10, T26, T27, T28, appA_out_gag(T27, X40, T28)) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_gg(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_gg(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_gg(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U5_gg(T10, T26, T27, T28, starB_out_gg(.(T10, .(T26, T27)), .(T26, T28))) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
U2_gg(T10, T17, starB_out_gg(.(T10, []), T17)) → starB_out_gg(.(T10, []), .(T10, T17))

The argument filtering Pi contains the following mapping:
starB_in_gg(x1, x2)  =  starB_in_gg(x1, x2)
[]  =  []
starB_out_gg(x1, x2)  =  starB_out_gg
.(x1, x2)  =  .(x1, x2)
U2_gg(x1, x2, x3)  =  U2_gg(x3)
U3_gg(x1, x2, x3, x4, x5)  =  U3_gg(x5)
appA_in_gag(x1, x2, x3)  =  appA_in_gag(x1, x3)
appA_out_gag(x1, x2, x3)  =  appA_out_gag(x2)
U1_gag(x1, x2, x3, x4, x5)  =  U1_gag(x5)
U4_gg(x1, x2, x3, x4, x5)  =  U4_gg(x1, x2, x3, x4, x5)
U5_gg(x1, x2, x3, x4, x5)  =  U5_gg(x5)
APPA_IN_GAG(x1, x2, x3)  =  APPA_IN_GAG(x1, x3)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPA_IN_GAG(.(T45, T46), X73, .(T45, T47)) → APPA_IN_GAG(T46, X73, T47)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPA_IN_GAG(x1, x2, x3)  =  APPA_IN_GAG(x1, x3)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPA_IN_GAG(.(T45, T46), .(T45, T47)) → APPA_IN_GAG(T46, T47)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPA_IN_GAG(.(T45, T46), .(T45, T47)) → APPA_IN_GAG(T46, T47)
    The graph contains the following edges 1 > 1, 2 > 2

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_GG(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_GG(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → STARB_IN_GG(.(T10, .(T26, T27)), .(T26, T28))

The TRS R consists of the following rules:

starB_in_gg(T4, []) → starB_out_gg(T4, [])
starB_in_gg(.(T10, []), .(T10, T17)) → U2_gg(T10, T17, starB_in_gg(.(T10, []), T17))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_gg(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
appA_in_gag([], T38, T38) → appA_out_gag([], T38, T38)
appA_in_gag(.(T45, T46), X73, .(T45, T47)) → U1_gag(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
U1_gag(T45, T46, X73, T47, appA_out_gag(T46, X73, T47)) → appA_out_gag(.(T45, T46), X73, .(T45, T47))
U3_gg(T10, T26, T27, T28, appA_out_gag(T27, X40, T28)) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_gg(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_gg(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_gg(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U5_gg(T10, T26, T27, T28, starB_out_gg(.(T10, .(T26, T27)), .(T26, T28))) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
U2_gg(T10, T17, starB_out_gg(.(T10, []), T17)) → starB_out_gg(.(T10, []), .(T10, T17))

The argument filtering Pi contains the following mapping:
starB_in_gg(x1, x2)  =  starB_in_gg(x1, x2)
[]  =  []
starB_out_gg(x1, x2)  =  starB_out_gg
.(x1, x2)  =  .(x1, x2)
U2_gg(x1, x2, x3)  =  U2_gg(x3)
U3_gg(x1, x2, x3, x4, x5)  =  U3_gg(x5)
appA_in_gag(x1, x2, x3)  =  appA_in_gag(x1, x3)
appA_out_gag(x1, x2, x3)  =  appA_out_gag(x2)
U1_gag(x1, x2, x3, x4, x5)  =  U1_gag(x5)
U4_gg(x1, x2, x3, x4, x5)  =  U4_gg(x1, x2, x3, x4, x5)
U5_gg(x1, x2, x3, x4, x5)  =  U5_gg(x5)
STARB_IN_GG(x1, x2)  =  STARB_IN_GG(x1, x2)
U4_GG(x1, x2, x3, x4, x5)  =  U4_GG(x1, x2, x3, x4, x5)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_GG(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_GG(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → STARB_IN_GG(.(T10, .(T26, T27)), .(T26, T28))

The TRS R consists of the following rules:

appA_in_gag([], T38, T38) → appA_out_gag([], T38, T38)
appA_in_gag(.(T45, T46), X73, .(T45, T47)) → U1_gag(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
U1_gag(T45, T46, X73, T47, appA_out_gag(T46, X73, T47)) → appA_out_gag(.(T45, T46), X73, .(T45, T47))

The argument filtering Pi contains the following mapping:
[]  =  []
.(x1, x2)  =  .(x1, x2)
appA_in_gag(x1, x2, x3)  =  appA_in_gag(x1, x3)
appA_out_gag(x1, x2, x3)  =  appA_out_gag(x2)
U1_gag(x1, x2, x3, x4, x5)  =  U1_gag(x5)
STARB_IN_GG(x1, x2)  =  STARB_IN_GG(x1, x2)
U4_GG(x1, x2, x3, x4, x5)  =  U4_GG(x1, x2, x3, x4, x5)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_GG(T10, T26, T27, T28, appA_in_gag(T27, T28))
U4_GG(T10, T26, T27, T28, appA_out_gag(T31)) → STARB_IN_GG(.(T10, .(T26, T27)), .(T26, T28))

The TRS R consists of the following rules:

appA_in_gag([], T38) → appA_out_gag(T38)
appA_in_gag(.(T45, T46), .(T45, T47)) → U1_gag(appA_in_gag(T46, T47))
U1_gag(appA_out_gag(X73)) → appA_out_gag(X73)

The set Q consists of the following terms:

appA_in_gag(x0, x1)
U1_gag(x0)

We have to consider all (P,Q,R)-chains.

(21) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule STARB_IN_GG(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_GG(T10, T26, T27, T28, appA_in_gag(T27, T28)) we obtained the following new rules [LPAR04]:

STARB_IN_GG(.(z0, .(z0, z2)), .(z0, .(z0, x3))) → U4_GG(z0, z0, z2, x3, appA_in_gag(z2, x3))

(22) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U4_GG(T10, T26, T27, T28, appA_out_gag(T31)) → STARB_IN_GG(.(T10, .(T26, T27)), .(T26, T28))
STARB_IN_GG(.(z0, .(z0, z2)), .(z0, .(z0, x3))) → U4_GG(z0, z0, z2, x3, appA_in_gag(z2, x3))

The TRS R consists of the following rules:

appA_in_gag([], T38) → appA_out_gag(T38)
appA_in_gag(.(T45, T46), .(T45, T47)) → U1_gag(appA_in_gag(T46, T47))
U1_gag(appA_out_gag(X73)) → appA_out_gag(X73)

The set Q consists of the following terms:

appA_in_gag(x0, x1)
U1_gag(x0)

We have to consider all (P,Q,R)-chains.

(23) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule U4_GG(T10, T26, T27, T28, appA_out_gag(T31)) → STARB_IN_GG(.(T10, .(T26, T27)), .(T26, T28)) we obtained the following new rules [LPAR04]:

U4_GG(z0, z0, z1, z2, appA_out_gag(x4)) → STARB_IN_GG(.(z0, .(z0, z1)), .(z0, z2))

(24) Obligation:

Q DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(z0, .(z0, z2)), .(z0, .(z0, x3))) → U4_GG(z0, z0, z2, x3, appA_in_gag(z2, x3))
U4_GG(z0, z0, z1, z2, appA_out_gag(x4)) → STARB_IN_GG(.(z0, .(z0, z1)), .(z0, z2))

The TRS R consists of the following rules:

appA_in_gag([], T38) → appA_out_gag(T38)
appA_in_gag(.(T45, T46), .(T45, T47)) → U1_gag(appA_in_gag(T46, T47))
U1_gag(appA_out_gag(X73)) → appA_out_gag(X73)

The set Q consists of the following terms:

appA_in_gag(x0, x1)
U1_gag(x0)

We have to consider all (P,Q,R)-chains.

(25) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.


STARB_IN_GG(.(z0, .(z0, z2)), .(z0, .(z0, x3))) → U4_GG(z0, z0, z2, x3, appA_in_gag(z2, x3))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x1 + x2   
POL(STARB_IN_GG(x1, x2)) = x2   
POL(U1_gag(x1)) = 0   
POL(U4_GG(x1, x2, x3, x4, x5)) = 1 + x1 + x2 + x4   
POL([]) = 0   
POL(appA_in_gag(x1, x2)) = 0   
POL(appA_out_gag(x1)) = 0   

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
none

(26) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U4_GG(z0, z0, z1, z2, appA_out_gag(x4)) → STARB_IN_GG(.(z0, .(z0, z1)), .(z0, z2))

The TRS R consists of the following rules:

appA_in_gag([], T38) → appA_out_gag(T38)
appA_in_gag(.(T45, T46), .(T45, T47)) → U1_gag(appA_in_gag(T46, T47))
U1_gag(appA_out_gag(X73)) → appA_out_gag(X73)

The set Q consists of the following terms:

appA_in_gag(x0, x1)
U1_gag(x0)

We have to consider all (P,Q,R)-chains.

(27) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(28) TRUE

(29) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(T10, []), .(T10, T17)) → STARB_IN_GG(.(T10, []), T17)

The TRS R consists of the following rules:

starB_in_gg(T4, []) → starB_out_gg(T4, [])
starB_in_gg(.(T10, []), .(T10, T17)) → U2_gg(T10, T17, starB_in_gg(.(T10, []), T17))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U3_gg(T10, T26, T27, T28, appA_in_gag(T27, X40, T28))
appA_in_gag([], T38, T38) → appA_out_gag([], T38, T38)
appA_in_gag(.(T45, T46), X73, .(T45, T47)) → U1_gag(T45, T46, X73, T47, appA_in_gag(T46, X73, T47))
U1_gag(T45, T46, X73, T47, appA_out_gag(T46, X73, T47)) → appA_out_gag(.(T45, T46), X73, .(T45, T47))
U3_gg(T10, T26, T27, T28, appA_out_gag(T27, X40, T28)) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
starB_in_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28))) → U4_gg(T10, T26, T27, T28, appA_in_gag(T27, T31, T28))
U4_gg(T10, T26, T27, T28, appA_out_gag(T27, T31, T28)) → U5_gg(T10, T26, T27, T28, starB_in_gg(.(T10, .(T26, T27)), .(T26, T28)))
U5_gg(T10, T26, T27, T28, starB_out_gg(.(T10, .(T26, T27)), .(T26, T28))) → starB_out_gg(.(T10, .(T26, T27)), .(T10, .(T26, T28)))
U2_gg(T10, T17, starB_out_gg(.(T10, []), T17)) → starB_out_gg(.(T10, []), .(T10, T17))

The argument filtering Pi contains the following mapping:
starB_in_gg(x1, x2)  =  starB_in_gg(x1, x2)
[]  =  []
starB_out_gg(x1, x2)  =  starB_out_gg
.(x1, x2)  =  .(x1, x2)
U2_gg(x1, x2, x3)  =  U2_gg(x3)
U3_gg(x1, x2, x3, x4, x5)  =  U3_gg(x5)
appA_in_gag(x1, x2, x3)  =  appA_in_gag(x1, x3)
appA_out_gag(x1, x2, x3)  =  appA_out_gag(x2)
U1_gag(x1, x2, x3, x4, x5)  =  U1_gag(x5)
U4_gg(x1, x2, x3, x4, x5)  =  U4_gg(x1, x2, x3, x4, x5)
U5_gg(x1, x2, x3, x4, x5)  =  U5_gg(x5)
STARB_IN_GG(x1, x2)  =  STARB_IN_GG(x1, x2)

We have to consider all (P,R,Pi)-chains

(30) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(31) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(T10, []), .(T10, T17)) → STARB_IN_GG(.(T10, []), T17)

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains

(32) PiDPToQDPProof (EQUIVALENT transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(33) Obligation:

Q DP problem:
The TRS P consists of the following rules:

STARB_IN_GG(.(T10, []), .(T10, T17)) → STARB_IN_GG(.(T10, []), T17)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(34) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • STARB_IN_GG(.(T10, []), .(T10, T17)) → STARB_IN_GG(.(T10, []), T17)
    The graph contains the following edges 1 >= 1, 2 > 2

(35) YES